package cn.net.cfss.fgbp.api.console.dto;

import cn.net.cfss.fgbp.api.console.constant.CertificateTypeEnum;
import cn.net.cfss.fgbp.api.console.constant.GenderEnum;
import cn.net.cfss.fgbp.api.console.constant.YesOrNoEnum;

import java.util.Date;
import javax.persistence.*;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.FgbpEnumSerializer;

@Table(name = "t_sys_user_detail")
public class SysUserDetailDto extends BaseDto {
    /**
     * 归属用户ID
     */
    @Column(name = "USER_ID")
    private String userId;

    /**
     * 姓名
     */
    @Column(name = "NAME")
    private String name;

    /**
     * 手机号
     */
    @Column(name = "CELL_PHONE")
    private String cellPhone;

    /**
     * 座机号
     */
    @Column(name = "LANDLINE")
    private String landline;

    /**
     * 电子邮箱
     */
    @Column(name = "EMAIL")
    private String email;

    /**
     * QQ号
     */
    @Column(name = "QQ")
    private String qq;

    /**
     * 微信号
     */
    @Column(name = "WECHAT")
    private String wechat;

    /**
     * 性别(0-男;1-女;2-未知)
     */
    @Column(name = "GENDER")
    @JSONField(serializeUsing = FgbpEnumSerializer.class)
    private GenderEnum gender;

    /**
     * 证件类型(0-身份证)
     */
    @Column(name = "CERTIFICATE_TYPE")
    @JSONField(serializeUsing = FgbpEnumSerializer.class)
    private CertificateTypeEnum certificateType;

    /**
     * 证件号码
     */
    @Column(name = "CERTIFICATE_NO")
    private String certificateNo;

    /**
     * 实名认证标记(0-否;1-是)
     */
    @Column(name = "IS_REAL_NAME")
    @JSONField(serializeUsing = FgbpEnumSerializer.class)
    private YesOrNoEnum isRealName;

    /**
     * 工号
     */
    @Column(name = "EMP_NO")
    private String empNo;

    /**
     * 入职时间
     */
    @Column(name = "ENTRY_DATE")
    private Date entryDate;

    /**
     * 出生日期
     */
    @Column(name = "BIRTH_DATE")
    private Date birthDate;

    /**
     * 备注
     */
    @Column(name = "REMARK")
    private String remark;

    /**
     * 获取归属用户ID
     *
     * @return USER_ID - 归属用户ID
     */
    public String getUserId() {
        return userId;
    }

    /**
     * 设置归属用户ID
     *
     * @param userId 归属用户ID
     */
    public void setUserId(String userId) {
        this.userId = userId == null ? null : userId.trim();
    }

    /**
     * 获取姓名
     *
     * @return NAME - 姓名
     */
    public String getName() {
        return name;
    }

    /**
     * 设置姓名
     *
     * @param name 姓名
     */
    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    /**
     * 获取手机号
     *
     * @return CELL_PHONE - 手机号
     */
    public String getCellPhone() {
        return cellPhone;
    }

    /**
     * 设置手机号
     *
     * @param cellPhone 手机号
     */
    public void setCellPhone(String cellPhone) {
        this.cellPhone = cellPhone == null ? null : cellPhone.trim();
    }

    /**
     * 获取座机号
     *
     * @return LANDLINE - 座机号
     */
    public String getLandline() {
        return landline;
    }

    /**
     * 设置座机号
     *
     * @param landline 座机号
     */
    public void setLandline(String landline) {
        this.landline = landline == null ? null : landline.trim();
    }

    /**
     * 获取电子邮箱
     *
     * @return EMAIL - 电子邮箱
     */
    public String getEmail() {
        return email;
    }

    /**
     * 设置电子邮箱
     *
     * @param email 电子邮箱
     */
    public void setEmail(String email) {
        this.email = email == null ? null : email.trim();
    }

    /**
     * 获取QQ号
     *
     * @return QQ - QQ号
     */
    public String getQq() {
        return qq;
    }

    /**
     * 设置QQ号
     *
     * @param qq QQ号
     */
    public void setQq(String qq) {
        this.qq = qq == null ? null : qq.trim();
    }

    /**
     * 获取微信号
     *
     * @return WECHAT - 微信号
     */
    public String getWechat() {
        return wechat;
    }

    /**
     * 设置微信号
     *
     * @param wechat 微信号
     */
    public void setWechat(String wechat) {
        this.wechat = wechat == null ? null : wechat.trim();
    }

    /**
     * 获取性别(0-男;1-女;2-未知)
     *
     * @return GENDER - 性别(0-男;1-女;2-未知)
     */
    public GenderEnum getGender() {
        return gender;
    }

    /**
     * 设置性别(0-男;1-女;2-未知)
     *
     * @param gender 性别(0-男;1-女;2-未知)
     */
    public void setGender(GenderEnum gender) {
        this.gender = gender;
    }

    /**
     * 获取证件类型(0-身份证)
     *
     * @return CERTIFICATE_TYPE - 证件类型(0-身份证)
     */
    public CertificateTypeEnum getCertificateType() {
        return certificateType;
    }

    /**
     * 设置证件类型(0-身份证)
     *
     * @param certificateType 证件类型(0-身份证)
     */
    public void setCertificateType(CertificateTypeEnum certificateType) {
        this.certificateType = certificateType;
    }

    /**
     * 获取证件号码
     *
     * @return CERTIFICATE_NO - 证件号码
     */
    public String getCertificateNo() {
        return certificateNo;
    }

    /**
     * 设置证件号码
     *
     * @param certificateNo 证件号码
     */
    public void setCertificateNo(String certificateNo) {
        this.certificateNo = certificateNo == null ? null : certificateNo.trim();
    }

    /**
     * 获取实名认证标记(0-否;1-是)
     *
     * @return IS_REAL_NAME - 实名认证标记(0-否;1-是)
     */
    public YesOrNoEnum getIsRealName() {
        return isRealName;
    }

    /**
     * 设置实名认证标记(0-否;1-是)
     *
     * @param isRealName 实名认证标记(0-否;1-是)
     */
    public void setIsRealName(YesOrNoEnum isRealName) {
        this.isRealName = isRealName;
    }

    /**
     * 获取工号
     *
     * @return EMP_NO - 工号
     */
    public String getEmpNo() {
        return empNo;
    }

    /**
     * 设置工号
     *
     * @param empNo 工号
     */
    public void setEmpNo(String empNo) {
        this.empNo = empNo == null ? null : empNo.trim();
    }

    /**
     * 获取入职时间
     *
     * @return ENTRY_DATE - 入职时间
     */
    public Date getEntryDate() {
        return entryDate;
    }

    /**
     * 设置入职时间
     *
     * @param entryDate 入职时间
     */
    public void setEntryDate(Date entryDate) {
        this.entryDate = entryDate;
    }

    /**
     * 获取出生日期
     *
     * @return BIRTH_DATE - 出生日期
     */
    public Date getBirthDate() {
        return birthDate;
    }

    /**
     * 设置出生日期
     *
     * @param birthDate 出生日期
     */
    public void setBirthDate(Date birthDate) {
        this.birthDate = birthDate;
    }

    /**
     * 获取备注
     *
     * @return REMARK - 备注
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 设置备注
     *
     * @param remark 备注
     */
    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

}